# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt

import matplotlib
matplotlib.rcParams['mathtext.fontset'] = 'stix'
matplotlib.rcParams['font.family'] = 'STIXGeneral'


#%% FONCTION
fq = 440
S = 1

def s(t,f,s,phi=0):
    
    return s*np.sin(2*np.pi*f*t+phi)


#LISTE DES X
t = np.linspace(0,0.1,1000) #début, fin, nombre de points

#LISTE DES Y
Y1 = s(t, fq, s=S)
Y2 = s(t, fq+40, s=S)
Y3 = Y1*Y2 

#%% GRAPHE

fig = plt.figure(figsize=(12,6))
ax = fig.add_subplot(211)
ax2 = fig.add_subplot(212)

ax.set_xlim(0,0.1) #Limites de l'axe X
ax.set_ylim(-2,2) #Limites de l'axe Y

ax2.set_xlim(0,0.1) #Limites de l'axe X
ax2.set_ylim(-2,2) #Limites de l'axe Y


ax.set_xlabel(r'$t$', fontsize = 20) #Titre axe X
ax.set_ylabel(r'$s(t)$', fontsize = 20) #Titre axe Y

ax2.set_xlabel(r'$t$', fontsize = 20) #Titre axe X
ax2.set_ylabel(r'$S(t)$', fontsize = 20) #Titre axe Y

ax2.plot(t,Y3, label='produit des signaux', lw=2.5) 

ax.plot(t,Y1, label='signal 1', lw=2.5) #label : nom dans la légende, lw : épaisseur du trait

ax.plot(t,Y2, label='signal 2', lw=2.5) #label : nom dans la légende, lw : épaisseur du trait




#%% OPTIONNEL

ax.grid(True) #Grille
ax.legend(loc=2 ,prop={'size':15}) #Legende
ax2.legend(loc=2 ,prop={'size':15}) #Legende
ax2.grid(True) #Grille


